iT邦幫忙

2022 iThome 鐵人賽

DAY 17
1
Modern Web

資料庫也有版本控制系列 第 17

Day 17 : 透過 Entity Framework Core Migration 來進行資料庫的版本控制

  • 分享至 

  • xImage
  •  

五、實際操作

Day 16 : 透過簡易的書店 API 來進行資料庫的版本控制
-> Day 17 : 透過 Entity Framework Core Migration 來進行資料庫的版本控制
Day 18 : 透過 Entity Framework Core Migration 對資料庫進行修改
Day 19 : 將 Entity Framework Core Migration 異動同步上 git
Day 20 : 將 Entity Framework Core Migration 流程套入 CI/CD 流程中
Day 21 : 透過 Entity Framework Core Migration 進行退版
Day 22 : 透過 Flyway 來進行資料庫的版本控制
Day 23 : 透過 Flyway 對資料庫進行修改
Day 24 : 透過 Flyway 異動同步上 git
Day 25 : 將 Flyway 套入 CI/CD 流程中
Day 26 : 透過 Flyway 進行退版
Day 27 : Entity Framework Core Migration vs Flyway


我們先產生一個 webapi 專案,.NET 6,取名為 BookStroe

由於之後的操作會在本機端的 PostgreSQL 操作,所以對其安裝 PostgreSQL 版本的 Entity Framework Core

dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL --version 6.0.7

裝完了我們就有了操作資料庫套件,雖然比 ADO.NET 更好上手了,但仍需做一些配置,比如說 appsetting 內放置連線字串等,我們這裡先簡化

我們將 Book 的 Entity 建立好

public class Book
    {
        public Guid Id { get; set; }
        
        public string Name { get; set; }

        public decimal Price { get; set; }
    }

設定好 EF 的設定

最後我們將使用 EF 產生遷移檔,並實際建立資料表

        migrationBuilder.CreateTable(
            name: "Book",
            schema: "BookStore",
            columns: table => new
            {
                Id = table.Column<Guid>(type: "uuid", nullable: false),
                Name = table.Column<Guid>(type: "text", nullable: false),
                Price = table.Column<Guid>(type: "decimal", nullable: false),
            },
            constraints: table =>
            {
                table.PrimaryKey("PK_Books", x => x.Id);
            });

完整的程式將會在後續放上 Github

後續預告

下一篇將會增加功能並且修改資料庫的 Schema


上一篇
Day 16 : 透過簡易的書店 API 來進行資料庫的版本控制
下一篇
Day 18 : 透過 Entity Framework Core Migration 對資料庫進行修改
系列文
資料庫也有版本控制30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言